ATM (Asynchronous Transfer Mode) is a multiplexing and switching technique for transferring data across a network using fixed sized cells that are synchronous in the sense that they appear strictly periodically on the physical medium. Each cell comprises a payload portion and a header, the latter including a label that associates the cell with an instance of communication between sending and receiving network end systems; this instance of communication may involve the transfer of many cells from the sending end system, possibly to multiple receiving end systems. ATM is asynchronous in the sense that cells belonging to the same instance of communication will not necessarily appear at periodic intervals.
In ATM, the labels appended to the Cells are fixed-size context dependent labels, that is, they are only understandable in the light of context information already established at the interpreting network node, the label generally being replaced at one node by the label required for the next node. In other words, ATM is a virtual circuit technology requiring a set up phase for each instance of communication to establish the appropriate label knowledge at each node.
The virtual circuit label for an ATM cell on a particular link is formed by a Virtual Path Indicator (VPI) and a Virtual Channel Indicator (VCI) present in the cell header. This label forms the basis on which the cell is routed at the next network node it encounters. Generally, in ATM parlance, a virtual circuit is called a "Virtual Channel" and the VPI fields can be thought of as identifying a group of virtual channels on a link whilst the VCI identifies a particular virtual channel in that group.
ATM technology is finding increasing popularity because it can offer an acceptable compromise in combining timeliness characteristics (normally associated with circuit switching technologies) and statistical advantage (associated with packet switching technologies). ATM holds out the prospect of a single transfer mode technology for carrying all traffic types, including voice, entertainment services, or computer traffic. This flexibility of use is made available by offering different qualities of service (QOS) to the user, the chosen QOS then attaching to the virtual channel used for the communication. The two main types of QOS are:
a "best efforts" QOS where the ATM system does its best to deliver cells of the virtual channel concerned subject to first satisfying priority services--in other words, the system makes no guarantee regarding delivery rate; PA1 a "guaranteed bandwidth" QOS where the ATM system guarantees a certain bandwidth to the virtual channel concerned. This guarantee is generally not a hard one--in other words, the term "guaranteed bandwidth" is intended to indicate a type of service that is offered as normally providing a particular transmission bandwidth rather than meaning that the technical service providing means will always meet the service level subject of the guarantee. PA1 adding together the three parts of the transmission rate indicator for the channel concerned to produce a result with an integer component and a fractional remainder; PA1 using the integer component of the result to set said offset; and PA1 storing the fractional remainder as the accumulation part of the transmission rate indicator for the virtual channel concerned; and PA1 adding together the three said pans of the credit-generation rate indicator for the channel concerned to produce a result with an integer component and a fractional remainder; PA1 using the integer component of the result to set said offset; and PA1 storing said fractional remainder as the said accumulation part of the said credit-generation rate indicator for the virtual channel concerned. PA1 adding together the three said parts of the credit-increment size indicator for the channel concerned to produce a result with an integer component and a fractional remainder; PA1 using the integer component of the result to set said increment amount; and PA1 storing said fractional remainder as the said accumulation part of the said credit-increment size indicator for the virtual channel concerned. PA1 adding together the three said parts of the control data item for the channel concerned to produce a result with an integer component and a fractional remainder; PA1 using the integer component of the result to set said control number; and PA1 storing said fractional remainder as the said accumulation part of the said control data item for the virtual channel concerned; and
Where multiple guaranteed bandwidth virtual channels are simultaneously operating over the same link, it becomes necessary to effect some sort of scheduling between channels having cells to transmit; a number of scheduling arrangements are known including a simple round-robin approach where each channel is taken in strict rotation.
It is also necessary to ensure that a channel does not take up available bandwidth to a level way above its guarantee and to this end, it is well known to effect traffic shaping that limits the transmission rate of a channel. Many of the schemes for effecting traffic shaping utilise a so-called "leaky bucket" algorithm by which transmission credits are built up at a steady rate and credits are then consumed as cells are sent. By placing a maximum size on the credit bucket, a limit can be placed on any cell burst resulting frown the sudden availability of cells for a channel on which credit has been building for some time.
It is possible to combine scheduling and traffic shaping. According to one known approach, a fixed-size circular list is provided and each channel is inserted one or more times in fixed locations in the list; taking each list entry in turn provides both scheduling and a fixed bandwidth for each channel, this bandwidth being proportional to the number of times a channel is present in the list. This approach, however, lacks flexibility.
In another approach, described in our co-pending European Patent Application No. 94410045.2 (corresponding to U.S. patent application Ser. No. 08/453,657 filed May 30, 1995 entitled "Method and Apparatus for Regulating Virtual Channel Cell Transmission"), a fixed-size circular list is again used to hold in its slots the identity (as specified by a virtual channel number or "VCN") of each channel on which cells are to be sent; however, the assignment of VCNs to slot is not permanent but changes dynamically. More particularly, in operation the list is advanced through slot by slot and each VCN encountered is processed to cause the transmission of a cell for the corresponding virtual channel; at the same time, the list is updated by freeing the current slot and inserting back into the list any VCN that occupied the slot if that VCN relates to a virtual channel with another cell to transmit. This insertion is effected at an offset from the slot previously occupied by the VCN, dependent on the transmission rate required for the virtual channel concerned (and subject to a conflict resolution procedure). Whilst this approach is more flexible than that previously described, the use of an offset of fixed value has the effect that only certain transmission rates can be achieved--for example with an offset of two slots, a channel will occupy half the available bandwidth whilst with an offset of one, it will occupy all the bandwidth (assuming it is allowed to do so).
It is an object of the present invention to permit finer control of transmission rates than possible in the arrangements referred to above.